Containers are used as a virtualization choice due to, for example, being lightweight, as well as incorporating density, elasticity, and rapid provisioning. Containers are also being adopted as a capability to build platform as a service (PaaS) and software as a service (SaaS) cloud solutions.
Additionally, virtual machines (VMs) can encapsulate a complete operating state into a single virtual disk (vDisk). Migration of VMs commonly involves moving or copying vDisks between servers. Different vendors utilize different vDisk formats and provide proprietary live migration capabilities. Further, migrating VMs across hypervisors require explicit vDisk conversions.
Containers persist their states in directories on a host filesystem such as root filesystems (rootfs) and data volumes. Accordingly, container migration is primarily a file-based process which involves moving data directories from a source to a target host. Also, containers are commonly implemented to run a single application process. Therefore, unlike VMs, installing migration agents into containers is discouraged, and the migration capabilities required for container clouds are different than for VM clouds.
Existing migration approaches attempt to migrate and/or provision containers without moving storage, which can result in poor performance and/or deployment of storage migration methods that require long container downtimes.